﻿#!/bin/bash
#author:Castle Moriarty
# date:2025-11-03

## 把文本每3行合成1行

<< 'COMMENT'
把办法里面每三行内容合并到一行，例如：1.txt内容
1
2
3
4
5
6
7
8
处理后应该是
1 2 3
4 5 6
7 8
其实，该需求用sed处理非常简单： sed 'N;N;s/\n/ /g' filename
但这里，就是要用shell脚本实现，锻炼大家的思维能力
COMMENT

## n为计数器，初始值为1
n=1

## 遍历文本内容，其实$1就是文件名
cat $1 |while read line
do
  ## n1为n/3的余数
  n1=$[$n%3]
  ## 当n/3余数为0时，打印文本后带换行符
  if [ $n1 -eq 0 ]
  then
    echo "$line"
  else
    ## 当n/3余数不为0时，打印文件后不带换行符而是空格
    echo -n "$line "
  fi
  ## n的值为1
  n=$[$n+1]
done


